﻿
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework;
using AIniciacao.Lib.Sprites;
using Microsoft.Xna.Framework.Input;
using AIniciacao.Lib.Input;
using AIniciacao.Lib.Audio;
using System.Collections.Generic;

namespace AIniciacao.Lib.Characters
{
    public abstract class Personagem 
    {
        protected Texture2D imgPerfil;
        protected Texture2D imgLeft;
        protected Texture2D imgRight;
        protected Texture2D imgUp;
        protected Texture2D imgDown;
        protected Vector2 posDet;
        protected Vector2 velDet;
        protected PersonagemAnimation personagemAnimations;
        protected int currentSoundIndex = 0;
        protected bool firstFootStep = true;
   
        public Personagem(Texture2D imgPerfil, Texture2D imgLeft, Texture2D imgRight, Texture2D imgUp, Texture2D imgDown, Vector2 posDet, Vector2 velDet, PersonagemAnimation personagemAnimations)
        {
            this.imgPerfil = imgPerfil;
            this.imgLeft = imgLeft;
            this.imgRight = imgRight;
            this.imgUp = imgUp;
            this.imgDown = imgDown;
            this.posDet = posDet;
            this.velDet = velDet;
            this.personagemAnimations = personagemAnimations;

        }
        public virtual void HandleInput(InputState input, PlayerIndex? ControllingPlayer)
        {
        }
        public virtual void HandleInput(InputState input, PlayerIndex? ControllingPlayer,List<string> footStepSounds)
        {
        }
        public virtual void LastMovement()
        {
      
        }
      
       
        public Vector2 PosDet
        {
            get
            {
                return posDet;
            }
            set
            {
                posDet = value;
            }
        }
        public Vector2 VelDet
        {
            get
            {
                return velDet;
            }
            set
            {
                velDet = value;
            }
        }
        public PersonagemAnimation PersonagemAnimations
        {
            get
            {
                return personagemAnimations;
            }
            set
            {
                personagemAnimations = value;
            }
        }

    }
}
